package com.example.demo.domain.app.vo;

import lombok.Data;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * OrderAmountSummaryVO
 *
 * @author haochen78
 * @date 2025/11/17 03:08
 **/
@Data
public class OrderAmountSummaryVO {

    /** 订单 id */
    private Long id;

    /** 运费（旧） */
    private BigDecimal amountLogistics;

    /** 运费（新/备用） */
    private BigDecimal amountLogistics2;

    /** 用户实际支付金额 */
    private BigDecimal amountReal;

    /** 税费（通用） */
    private BigDecimal amountTax;

    /** GST 税（如澳大利亚） */
    private BigDecimal amountTaxGst;

    /** 服务税 */
    private BigDecimal amountTaxService;

    /** 订单总金额（含运费、税费，减优惠） */
    private BigDecimal amountTotle;

    /** 商品原始总价（未优惠） */
    private BigDecimal amountTotleOriginal;

    /** 可用余额抵扣总额 */
    private BigDecimal canDeductionAmountTotal;

    /** 可用积分抵扣总数 */
    private Integer canDeductionScoreTotal;

    /** 优惠券减免金额 */
    private BigDecimal couponAmount;

    /** 使用的优惠券 ID 列表 */
    private List<Long> couponId;

    /** 余额抵扣金额 */
    private BigDecimal deductionMoney;

    /** 积分抵扣数量 */
    private Integer deductionScore;

    /** 运费相关积分 */
    private Integer freightScore;

    /** 商品附加项价格映射（key: skuId 或 itemId） */
    private Map<String, Object> goodsAdditionalPriceMap;

    /** 商品总数量 */
    private Integer goodsNumber;

    /** 是否需要物流 */
    private Boolean isNeedLogistics;

    /** 多级营销优惠总额（如拼团、阶梯价） */
    private BigDecimal multilevelPriceDiscountsTotalAmount;

    /** 是否为跨境订单 */
    private Boolean overseas;

    /** 本次可获得积分 */
    private Integer score;
}
